%清除所有变量
clear
%输入训练样本
p1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;
1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];
p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.00
1.28,2.00;1.30,1.96];
%合并两组样本
p=[p1;p2]';
%得到矩阵p最大值和最小值
pr=minmax(p);
%目标输出
goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)];
%plot是绘制二维图,在一张figure上绘制两条曲线图,第一条曲线的自变量
%和因变量分别是p1的第一列和第二列,第二条曲线的自变量和因变
%量分别是p2的第一列和第二列,h 六线型,o 圆形。详见plot(x)用法
plot(p1(:,1),p1(:,2),'h',p2(:,1),p2(:,2),'o')
%创建一个bp神经网络
%[3,2]隐含层节点数为3(建立3个神经元)，输出层节点数为2
%{'logsig' 'logsig'}是包含每层用到的传递函数名称的细胞数组
net=newff(pr,[3,2],{'logsig','logsig'});
%显示迭代过程
net.trainParam.show = 10;
%学习速率0.05
net.trainParam.lr = 0.05;
%训练精度
net.trainParam.goal = 1e-10;
%最大训练次数
net.trainParam.epochs = 50000;
%训练
net = train(net,p,goal);
%输入测试样例
x=[1.24 1.80;1.28 1.84;1.40 2.04]';
%sim仿真
y0=sim(net,p)
y=sim(net,x)